package com.jier.annotation;

import java.lang.annotation.*;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ValidateField {

    /**
     * 参数索引位置
     */
    int index();

    /**
     * 参数名，主要用作当字段验证错误返回信息使用
     */
    String paramName();

    /**
     * 如果参数是基本数据类型或String ，就不用指定该参数，如果参数是对象，要验证对象里面某个属性，就用该参数指定属性名
     */
    String filedName() default "";

    /**
     * XSS 漏洞防控
     */
    boolean encodeXSS() default true;

    /**
     * 正则验证
     */
    String regStr() default "";

    /**
     * 自定义正则错误信息
     *
     * @return
     */
    String regErrorMsg() default "";

    /**
     * 是否能为空 ， 为true表示不能为空 ， false表示能够为空
     */
    boolean notNull() default false;

    /**
     * 最大长度 ， 用户验证字符串 ， 大于当前设置值
     */
    int maxLen() default -1;

    /**
     * 最小长度 ， 用户验证字符串 ，小于当前设置值
     */
    int minLen() default -1;

    /**
     * 最大值 ，用于验证数字类型数据 ， 大于当前设置值
     */
    String maxVal() default "";

    /**
     * 最小值 ，用于验证数值类型数据 ，小于当前设置值
     */
    String minVal() default "";

}
